跳到主要内容

AI原生软件工程与Agentic SDLC开发流程

面向已经具备软件工程基础、希望系统使用 AI Coding Agent 进行需求分析、编码、测试、审查和交付的工程师。

本文回答一个实际问题:从 Vibe Coding、SDD、Spec 之后,当前更完整、更适合生产项目的 AI 开发流程是什么?

资料核对日期:2026-09-03


目录​


1. 结论先行​

如果这里的 VB 指的是 Vibe Coding,那么当前的演进不是:

Vibe Coding → SDD → 新方法取代 SDD

而是:

Vibe Coding
+ Spec-Driven Development
+ Agentic Software Engineering
+ Context Engineering
+ Harness Engineering
+ Eval-Driven Development
+ Orchestration

可以把它概括为:

用 Vibe Coding 探索,用 Spec 固化意图,用 Agent 执行,用 Harness 约束环境,用 Test/Eval 验证,用生产观测反馈。

当前更完整的名称通常是:

  • Agentic Software Engineering:智能体驱动的软件工程。
  • AI-native Software Development:AI 原生软件开发。
  • Agentic SDLC:智能体驱动的软件开发生命周期。
  • Context Engineering:上下文工程。
  • Harness Engineering:面向 Agent 的工程执行环境设计。
  • Eval-Driven Development:评估驱动开发。

这些词语不是同义词,而是不同层次:

方法层:SDD / Agile / TDD / BDD
执行层:Agentic Coding / Agentic SDLC
知识层:Context Engineering
基础设施层:Harness Engineering
质量层:Test / Eval / Observability
调度层:Orchestration / Multi-Agent
交互层:Vibe Coding

因此,SDD 没有过时。真正的变化是:

Spec 从“给人看的需求文档”,升级为 Agent 可以读取、执行和验证的工程契约。


2. 术语和方法的关系​

2.1 Vibe Coding​

Vibe Coding 是一种以自然语言对话驱动代码生成的工作方式。它的关键特征是:

  • 先描述目标,再快速生成代码。
  • 通过连续对话迭代结果。
  • 初期不一定完整理解所有实现细节。
  • 适合探索、原型和低风险自动化。

它不是完整的软件工程生命周期,也不是质量保证方法。

适合场景​

  • UI 方案探索。
  • 一次性脚本。
  • 技术选型验证。
  • Demo 和 PoC。
  • 低风险页面调整。
  • 还没有稳定需求的早期发散。

不适合直接作为生产流程的场景​

  • 支付、订单、权限、登录。
  • 数据迁移和资金相关逻辑。
  • 复杂状态机。
  • 跨端兼容逻辑。
  • 多服务事务。
  • 需要审计和回滚的核心功能。
  • 任何“看起来能运行”但验收标准不清晰的改动。

正确的定位是:

Vibe Coding = 探索模式 / 交互模式
不是完整的生产交付方法

2.2 SDD 与 Spec​

SDD(Spec-Driven Development) 是以规格为中心的开发方式。规格优先于实现,代码需要满足规格定义的行为。

一个生产级 Spec 不应该只写功能描述,还应该包含:

  • 背景和问题。
  • 用户价值。
  • 功能范围。
  • 非目标(Non-goals)。
  • 不可妥协的约束(Constraints)。
  • 正常场景。
  • 异常场景。
  • 边界条件。
  • 可测量的成功标准。
  • 验收条件。
  • 兼容性和迁移要求。
  • 风险、依赖和假设。

SDD 的核心作用是降低以下风险:

需求歧义
→ 实现方向漂移
→ Agent 自行补全假设
→ 代码快速增加
→ 测试无法判断对错

通过 Spec 把链路变成:

业务意图
→ 可验证行为
→ 技术设计
→ 可执行任务
→ 代码和测试

2.3 Agentic Software Engineering​

Agentic Software Engineering 不是“使用一个聊天机器人写代码”,而是让一个或多个 Agent 在工具、上下文、任务和验证机制的约束下,执行跨文件、跨步骤、可恢复的软件工程任务。

典型能力包括:

  • 读取仓库和工程规则。
  • 分析依赖关系。
  • 生成实施计划。
  • 修改多个文件。
  • 执行测试、构建和静态检查。
  • 根据失败输出继续修复。
  • 更新任务状态和变更记录。
  • 创建提交或 Pull Request。
  • 在遇到不确定性时暂停并请求决策。

它的关键不是“模型一次生成多少代码”,而是:

Agent 是否能在受控环境中持续完成一个有验收条件的工程任务。

2.4 Context Engineering​

Context Engineering 关注的是:

Agent 在某一个执行步骤中,需要看到什么信息,才能做出正确判断?

上下文包括但不限于:

  • 项目规则。
  • 目录结构。
  • 当前模块实现。
  • 相关 API 和数据模型。
  • 架构决策。
  • 历史变更。
  • 当前任务和依赖。
  • 测试命令。
  • 生产限制。
  • 平台差异。
  • 之前的失败和已知问题。

它和 Prompt Engineering 的差异如下:

对比项Prompt EngineeringContext Engineering
关注对象一次提示词Agent 的连续工作状态
主要动作优化措辞组织、加载、压缩和更新上下文
典型载体Prompt规则、文档、代码、任务、工具、日志
主要风险回答不理想Agent 误解项目、重复犯错或越界修改
工程手段模板和示例仓库结构、索引、检索、规则、门禁

2.5 Harness Engineering​

Harness 是 Agent 的工程执行环境。它不等同于某一个 Agent,也不等同于 Prompt。

一个 Harness 通常包含:

  • Agent 可以使用的工具。
  • 工具的参数和权限。
  • 工程规则和上下文入口。
  • 测试、构建、lint 和格式化命令。
  • 沙箱、容器或隔离 Worktree。
  • 任务状态和恢复机制。
  • 自动化质量门禁。
  • 日志、指标和审计记录。
  • 失败分类和重试策略。

如果没有 Harness,Agent 只能“生成代码”;有了 Harness,Agent 才可能稳定地“完成工程任务”。

2.6 Eval-Driven Development​

Eval-Driven Development 是以评估集、指标和失败分析驱动开发迭代。

传统测试主要判断:

代码是否满足已知断言

AI 系统还需要判断:

Agent 是否选择了正确工具?
是否遵循了项目规则?
是否在边界条件下做出正确决策?
是否输出可接受的业务结果?
成本、延迟和稳定性是否达标?

评估应当在开发早期建立,而不是等到上线后才发现无法判断质量。

2.7 Orchestration​

Orchestration 是对多个 Agent、任务、工作区和验证流程的调度。

它解决的问题不是“一个 Agent 能不能写代码”,而是:

  • 哪些任务可以并行。
  • 哪些任务有严格依赖。
  • 每个 Agent 修改哪些文件。
  • 如何避免不同 Agent 互相覆盖。
  • 如何汇总测试结果。
  • 如何把完成的变更交给人工审查。
  • 如何在 Agent 失败后恢复。

多 Agent 不一定优于单 Agent。只有当任务边界清晰、写入范围互斥、接口契约稳定时,并行才有价值。


3. 从 Vibe Coding 到 Agentic SDLC 的演进​

3.1 第一阶段:Vibe Coding​

人:描述目标
Agent:生成代码
人:继续描述修改
Agent:继续修改

优点:速度快、反馈快、适合发散。

缺点:

  • 需求和实现混在一起。
  • Agent 的假设没有显式记录。
  • 代码可能逐渐偏离真实目标。
  • 很难恢复被中断的任务。
  • 很难判断“完成”到底意味着什么。
  • 质量依赖使用者的即时判断。

3.2 第二阶段:Spec-Driven Development​

需求
→ Spec
→ Plan
→ Tasks
→ Implement
→ Verify

SDD 解决了 Vibe Coding 的主要问题:

  • 先明确行为,再决定实现。
  • 让验收条件可追踪。
  • 让任务可以中断、恢复和交接。
  • 让代码审查有稳定参照物。

但单纯 SDD 仍然可能有不足:

  • 文档写得很好,但 Agent 看不到真实仓库约束。
  • Spec 和代码可能逐渐漂移。
  • 任务完成不代表业务结果正确。
  • 测试、工具权限和部署环境没有被纳入方法。

3.3 第三阶段:Agentic SDLC​

当前更完整的流程是:

Explore / Assess
→ Context
→ Spec / Contract
→ Research / Design
→ Tasks
→ Agent Execute
→ Test / Eval
→ Human Review
→ Deploy / Observe
→ Feedback

变化有四个:

  1. Spec 之前增加 Explore / Assess:先判断问题和范围。
  2. Spec 旁边增加 Context:让 Agent 理解真实工程环境。
  3. Implement 旁边增加 Harness:把工具、权限、命令和质量门禁组合起来。
  4. 发布之后增加 Observe / Feedback:让生产数据反哺 Spec、规则和评估集。

3.4 当前推荐的心智模型​

Vibe Coding = 快速发散
SDD = 固化意图
Agentic Coding = 执行任务
Context = 提供正确知识
Harness = 控制执行环境
Eval = 判断质量
Human Review = 处理高风险判断
Observability = 反馈真实结果

4. 推荐的完整 AI 开发流程​

4.1 阶段 0:Explore / Assess​

阶段目标:Explore / Assess​

在写代码和正式写 Spec 之前,确认问题、价值、范围和风险。

Agent 应完成​

  • 阅读用户输入和已有上下文。
  • 扫描相关代码、文档、接口和测试。
  • 找出相似实现和潜在复用点。
  • 列出不确定性和需要确认的问题。
  • 评估变更影响面。
  • 给出“实现、澄清、拒绝或延期”的建议。

人应决定​

  • 这个问题是否值得解决。
  • 成功指标是什么。
  • 哪些范围不做。
  • 哪些风险必须由人确认。
  • 是否允许 Agent 继续进入规划阶段。

推荐输出​

exploration.md
assessment.md
questions.md

阶段出口条件:Explore / Assess​

  • 问题描述不再依赖模糊词。
  • 已识别主要依赖和影响面。
  • 已列出需要人工决策的问题。
  • 已明确是否进入 Spec 阶段。

4.2 阶段 1:建立上下文和工程宪法​

阶段目标:上下文和工程宪法​

为 Agent 提供稳定、可发现、分层加载的工程事实。

推荐上下文内容​

项目定位
目录结构
模块边界
运行命令
测试命令
代码规范
安全规范
平台差异
架构决策
不可修改范围
发布和回滚规则

工程宪法的特点​

  • 规则必须可执行或可验证。
  • 规则应该少而稳定,避免变成无效长文。
  • 规则中要说明“为什么”,尤其是反直觉约束。
  • 规则不能替代 Spec,项目规则回答“怎么做”,Spec 回答“要实现什么”。
  • 规则应该通过 lint、CI、脚本或测试尽可能自动化。

阶段出口条件:上下文和工程宪法​

  • Agent 知道从哪里读取规则。
  • Agent 知道如何启动、测试和构建项目。
  • Agent 知道哪些目录和文件不能随意修改。
  • Agent 知道平台、环境和安全边界。

4.3 阶段 2:编写 Spec / Contract​

阶段目标:Spec / Contract​

把用户目标转成不依赖具体实现、但可以被验证的系统行为。

Spec 的推荐结构​

# 功能名称

## 背景

## 用户价值

## 目标

## 非目标

## 约束

## 用户场景

## 功能需求

## 非功能需求

## 状态和异常

## 验收标准

## 兼容性

## 风险和依赖

## 未决问题

需求应该可验证​

不推荐:

系统要有良好的支付体验。

推荐:

当用户从第三方支付页面返回时,系统必须根据 requestId 查询服务端支付状态;
在服务端确认成功前,客户端不得展示“支付完成”;
重复返回同一 requestId 时不得重复创建订单或重复发放权益。

推荐使用场景格式​

### Requirement: 支付回调可恢复

系统必须在第三方页面返回后恢复支付流程。

#### Scenario: 用户从支付页返回

- WHEN 用户从第三方支付页面回到业务页面
- THEN 客户端根据 requestId 查询服务端最终状态
- AND 在查询完成前展示明确的恢复中状态
- AND 不依赖一次性内存事件作为唯一结果通道

#### Scenario: 重复返回相同 requestId

- WHEN 同一个 requestId 被重复消费
- THEN 服务端状态查询必须保持幂等
- AND 客户端不得重复提交订单完成动作

阶段出口条件:Spec / Contract​

  • 没有未处理的关键澄清项。
  • 需求没有把实现细节误写成业务目标。
  • 每个核心需求至少有一个正常场景和一个异常场景。
  • 成功标准可以被测试或评估。
  • 非目标和约束已经明确。

4.4 阶段 3:Research / Plan / Design​

阶段目标:Research / Plan / Design​

在不修改业务代码之前,确定实现策略和架构边界。

Research 要回答​

  • 当前项目已有何种实现。
  • 是否存在可以复用的抽象。
  • 当前依赖和平台是否支持目标能力。
  • 有哪些可行方案。
  • 方案之间的成本、风险和兼容性差异。
  • 哪些事实需要通过实验验证。

Design 要回答​

  • 数据如何流动。
  • 状态如何转移。
  • 接口契约是什么。
  • 失败如何恢复。
  • 如何保证幂等。
  • 哪些模块允许修改。
  • 哪些行为必须保持不变。
  • 如何测试和回滚。

推荐设计格式​

# 技术设计

## 当前状态

## 目标状态

## 目标与非目标

## 关键决策

## 数据流 / 状态流

## 接口与数据契约

## 文件和模块影响面

## 失败处理与恢复

## 安全与权限

## 测试策略

## 发布与回滚

## 风险、权衡与未决问题

阶段出口条件:Research / Plan / Design​

  • 关键方案已经有人确认。
  • 设计和 Spec 没有互相矛盾。
  • 失败、重试、幂等、回滚都有说明。
  • 任务可以从设计中直接拆出。

4.5 阶段 4:拆解 Tasks 和建立执行边界​

阶段目标:Tasks 和执行边界​

把设计转成 Agent 可以独立执行、验证和恢复的任务。

好任务的特征​

  • 修改范围有限。
  • 有明确的前置依赖。
  • 有明确的完成条件。
  • 有可执行的验证命令。
  • 不需要 Agent 自行补充重大业务决策。
  • 完成后可以独立提交或回滚。

推荐任务格式​

## 1. 类型和状态模型

- [ ] 1.1 增加支付状态类型
- 修改范围:src/domain/payment/types.ts
- 完成条件:覆盖待支付、处理中、成功、失败、未知状态
- 验证:npm run typecheck

- [ ] 1.2 增加状态归一化函数
- 修改范围:src/domain/payment/normalize-status.ts
- 完成条件:未知服务端状态进入安全兜底分支
- 验证:npm run test -- payment-normalize

## 2. 页面恢复

- [ ] 2.1 增加页面恢复入口
- 前置依赖:1.1、1.2
- 完成条件:页面重新激活时可恢复未完成支付
- 验证:npm run test -- payment-recovery

是否需要为每个任务创建独立 Worktree​

情况建议
单人、小改动当前分支直接执行即可,但必须保持 diff 可控
多 Agent 并行每个 Agent 使用独立 Worktree
高风险迁移独立分支和独立验证环境
只读分析不需要创建 Worktree
需要反复试验使用临时分支或沙箱

阶段出口条件:Tasks 和执行边界​

  • 任务顺序和依赖关系清晰。
  • 每个任务都有验证方式。
  • 已定义 Agent 的文件写入范围。
  • 已定义暂停条件。
  • 已定义哪些情况必须回到 Spec 或 Design 修改。

4.6 阶段 5:Agentic Implementation​

推荐执行循环​

选择任务
↓
读取任务、Spec、Design 和项目规则
↓
检查当前代码和工作区
↓
实现最小变更
↓
运行针对性验证
↓
分析失败
↓
更新任务状态和变更记录
↓
进入下一个任务或暂停

Agent 每个任务开始前必须确认​

当前变更名称
当前任务编号
前置任务是否完成
允许修改的文件
不能改变的行为
验收标准
验证命令
暂停条件

Agent 不应自行猜测的事项​

  • 业务规则存在冲突时的最终选择。
  • 破坏性 API 是否可以接受。
  • 是否可以扩大修改范围。
  • 是否可以删除旧逻辑。
  • 安全策略是否可以放宽。
  • 失败时是否可以吞掉错误。
  • 测试无法运行时是否可以直接标记完成。
  • 真实设备、生产数据或第三方状态是否已经确认。

标记任务完成的条件​

只能在以下条件同时满足时标记完成:

  1. 需求行为已实现。
  2. 任务范围内的代码已经自检。
  3. 针对性测试或替代验证已执行。
  4. 没有已知的未处理错误。
  5. 任务文件和 File List 已同步。
  6. 没有偷偷吸收超出 Spec 的额外工作。

4.7 阶段 6:Test / Eval / Verify​

目标​

验证的不只是“代码能运行”,还包括:

  • 是否满足 Spec。
  • 是否满足边界条件。
  • 是否引入回归。
  • Agent 是否遵循工程规则。
  • 输出是否满足业务质量。
  • 成本、延迟和稳定性是否达标。

推荐验证顺序​

格式和空白检查
→ 类型检查
→ 单元测试
→ 组件 / 集成测试
→ 构建
→ 静态分析
→ 安全检查
→ 端到端测试
→ 评估集
→ 人工验收

不是所有项目都必须有所有层级,但每个项目都应该明确:

本项目哪些检查是强制门禁?
哪些检查只能提供参考?
哪些检查需要真实设备或真实环境?

Test 和 Eval 的区别​

类型关注点示例
Unit Test函数和模块行为状态归一化、权限判断
Integration Test模块协作页面、Store、API 协作
E2E Test用户完整流程登录、支付、下单
Contract Test服务和接口契约请求、响应、错误码
Property Test不变量幂等、单调性、状态约束
Regression Test已修复问题历史缺陷不能复现
Agent EvalAgent 决策和工具使用是否读取规则、是否正确调用工具
Production Eval真实运行质量成功率、延迟、成本、告警

验证结果必须分类​

代码缺陷
测试缺陷
需求歧义
设计缺陷
环境问题
依赖问题
工具链问题
真实设备 / 真实服务未验证

不能把所有失败都归因于 Agent,也不能把“命令成功退出”当成真实业务验收完成。

4.8 阶段 7:Human Review / Merge​

人工审查不应该重复 Agent 已经做好的机械工作,而应重点关注:

  • 需求是否被正确理解。
  • 业务边界是否正确。
  • 是否引入安全风险。
  • 是否改变了不应改变的行为。
  • 是否存在隐含的数据一致性问题。
  • 是否需要补充测试和监控。
  • 是否满足发布和回滚条件。

推荐 Review 顺序​

先看 Spec 和验收标准
↓
再看 Design 和影响范围
↓
再看任务完成情况
↓
最后看代码 diff

只从代码 diff 开始,容易陷入“代码看起来合理,但实际做错需求”的问题。

4.9 阶段 8:Deploy / Observe / Learn​

发布不是流程终点。

需要观察:

  • 核心业务成功率。
  • 错误率和异常类型。
  • 延迟、吞吐和资源消耗。
  • Agent 工具调用失败率。
  • Token 和模型成本。
  • 用户行为和转化指标。
  • 回滚次数。
  • 人工干预次数。
  • 需求、文档和实现是否出现漂移。

生产反馈应反哺:

  • Spec。
  • 验收场景。
  • 回归测试。
  • Agent 规则。
  • 架构决策。
  • 评估集。
  • 监控和告警。

推荐形成闭环:

线上事件
→ 缺陷或新约束
→ 更新 Spec / Eval / Rule
→ 修复实现
→ 回归验证
→ 再次发布

5. 核心产物设计​

5.1 Proposal​

Proposal 解决“为什么需要这个变更”。

# Proposal: <变更名称>

## Why

- 当前问题是什么?
- 对用户、业务或工程的影响是什么?

## What Changes

- 新增什么?
- 修改什么?
- 删除什么?
- 哪些是破坏性变更?

## Non-Goals

- 明确本次不做什么。

## Impact

- 受影响的模块、接口、数据、部署和文档。

## Alternatives

- 考虑过哪些替代方案?
- 为什么不采用?

## Approval

- 决策人:
- 决策日期:
- 状态:Draft / Approved / Rejected / Archived

5.2 Spec​

Spec 解决“系统必须表现成什么样”。

# Spec: <功能名称>

## Background

## Goals

## Non-Goals

## Constraints

## Actors

## User Scenarios

## Functional Requirements

### Requirement: <需求名称>

系统必须……

#### Scenario: <场景名称>

- WHEN ……
- THEN ……
- AND ……

## Non-Functional Requirements

- 性能:
- 可用性:
- 安全:
- 可观测性:
- 兼容性:

## State Model

## Error Handling

## Acceptance Criteria

- [ ] ……

## Dependencies and Assumptions

## Open Questions

5.3 Design​

Design 解决“准备如何实现”。

# Design: <功能名称>

## Current State

## Target State

## Goals / Non-Goals

## Architecture Decisions

### Decision: <决策名称>

- 选择:
- 原因:
- 放弃的替代方案:
- 风险:

## Data Flow

## State Transitions

## API and Data Contracts

## Module Boundaries

## Failure and Recovery

## Idempotency

## Security

## Compatibility

## Test Strategy

## Rollout and Rollback

## Open Questions

5.4 Tasks​

Tasks 解决“具体先做什么”。

# Tasks: <功能名称>

## Execution Rules

- 任务必须按依赖顺序执行。
- 遇到需求、设计或范围冲突时暂停。
- 未执行验证时不得勾选完成。

## 1. Foundation

- [ ] 1.1 <任务描述>
- 依赖:无
- 修改范围:
- 完成条件:
- 验证:

## 2. Core Behavior

- [ ] 2.1 <任务描述>
- 依赖:1.1
- 修改范围:
- 完成条件:
- 验证:

## 3. Verification

- [ ] 3.1 增加回归测试
- 依赖:2.1
- 验证:

## Completion Summary

- 完成任务:
- 未完成任务:
- 验证命令:
- 已知限制:

5.5 Verification​

Verification 解决“实际验证了什么”。

# Verification: <功能名称>

## Scope

## Commands

| 检查 | 命令 | 结果 | 备注 |
| --- | --- | --- | --- |
| Diff check | `git diff --check` | PASS / FAIL | |
| Typecheck | `npm run typecheck` | PASS / FAIL / BLOCKED | |
| Unit test | `npm run test -- <pattern>` | PASS / FAIL | |
| Build | `npm run build` | PASS / FAIL / BLOCKED | |
| E2E | `<command>` | PASS / FAIL / NOT RUN | |

## Acceptance Matrix

| 验收条件 | 验证方式 | 结果 | 证据 |
| --- | --- | --- | --- |
| …… | 单元测试 | PASS | 测试文件 |

## Failures

### <失败项>

- 类型:代码 / 测试 / 环境 / 工具链 / 未验证
- 现象:
- 原因:
- 处理:

## Real-Device / Production Boundary

- 是否完成真实设备验证:
- 是否完成真实第三方服务验证:
- 是否完成生产或预发布验证:

5.6 Decision Log​

Decision Log 用于记录重要决策,防止 Agent 在后续会话中重新讨论已经确定的问题。

# Decision Log

## ADR-001: <决策标题>

- 日期:2026-09-03
- 状态:Accepted
- 背景:
- 决策:
- 选择原因:
- 影响:
- 后续验证:

6. 一套可直接落地的目录结构​

6.1 小型项目​

project/
├── AGENTS.md
├── docs/
│ ├── architecture.md
│ ├── decisions/
│ └── changes/
│ └── 2026-09-feature-name/
│ ├── proposal.md
│ ├── spec.md
│ ├── design.md
│ ├── tasks.md
│ └── verification.md
├── src/
├── tests/
└── package.json

6.2 中大型项目​

project/
├── AGENTS.md
├── .agent-context/
│ ├── core.md
│ ├── architecture.md
│ ├── frontend.md
│ ├── backend.md
│ ├── security.md
│ └── testing.md
├── docs/
│ ├── product/
│ ├── architecture/
│ ├── decisions/
│ ├── contracts/
│ ├── specs/
│ ├── plans/
│ └── changes/
│ └── <change-id>/
│ ├── proposal.md
│ ├── spec.md
│ ├── design.md
│ ├── tasks.md
│ ├── verification.md
│ └── decision-log.md
├── apps/
├── packages/
├── services/
├── tests/
└── scripts/

6.3 OpenSpec 风格的变更目录​

openspec/
├── specs/
│ └── <domain>/
│ └── spec.md
├── changes/
│ └── <change-name>/
│ ├── proposal.md
│ ├── design.md
│ ├── tasks.md
│ └── specs/
│ └── <domain>/
│ └── spec.md
└── config.yaml

其中:

  • specs/ 表示当前系统行为的事实来源。
  • changes/ 表示尚未归档的变更提案。
  • 变更完成并合并后,再把有效变更归档回当前规格。

7. Agent 的职责边界与人机分工​

7.1 推荐职责划分​

工作Agent人
扫描代码和文档主责监督
生成探索报告主责判断是否可信
识别影响范围主责确认遗漏
生成 Spec 初稿主责批准目标和边界
技术方案对比主责做关键取舍
任务拆解主责确认粒度和优先级
常规编码主责监督范围
机械测试和格式化主责检查门禁是否合理
业务验收辅助主责
安全和合规决策辅助主责
高风险架构决策辅助主责
发布批准提供证据主责
生产事故判断提供分析主责

7.2 必须人工确认的节点​

建议在以下节点保留人工 Gate:

需求是否进入开发
↓
Spec 是否批准
↓
架构和数据变更是否批准
↓
是否允许扩大任务范围
↓
是否允许破坏性变更
↓
是否允许访问敏感环境
↓
是否满足发布条件

7.3 Agent 必须暂停的条件​

  • Spec 中有未解决的关键歧义。
  • Design 和现有代码存在冲突。
  • 任务需要修改未授权的目录。
  • 实现需要新增 Spec 未描述的行为。
  • 测试失败原因不明确。
  • 发现安全、权限或数据风险。
  • 需要删除或迁移重要数据。
  • 需要访问生产、真实用户数据或高权限凭据。
  • 需要改变接口契约。
  • 无法证明需求已经满足。

8. Context Engineering 实践​

8.1 上下文分层​

不建议把所有内容塞进一个超长规则文件。推荐按稳定性和作用域分层:

组织级规则
↓
仓库级规则
↓
领域级规则
↓
模块级规则
↓
当前变更 Spec / Design / Tasks
↓
当前文件和测试输出

组织级​

适合放:

  • 安全底线。
  • 代码提交规范。
  • 通用质量原则。
  • 敏感信息处理方式。

仓库级​

适合放:

  • 项目定位。
  • 包管理器和命令。
  • 目录结构。
  • 分支策略。
  • 构建、测试、发布方式。

领域级​

适合放:

  • 前端规范。
  • 后端规范。
  • 小程序平台差异。
  • 数据库规范。
  • Agent 和工具调用规则。

模块级​

适合放:

  • 特定业务状态机。
  • 模块 API。
  • 不允许改变的兼容行为。
  • 特殊测试方式。

变更级​

适合放:

  • 当前 Spec。
  • Design。
  • Tasks。
  • 验收标准。
  • 当前决策和未决问题。

8.2 AGENTS.md 的正确定位​

AGENTS.md 适合作为 Agent 的项目入口,但不应承载全部知识。

推荐内容:

  • 项目定位。
  • 开发命令。
  • 测试命令。
  • 目录导航。
  • 关键工程规则。
  • 安全边界。
  • 文档索引。
  • 常见失败处理。

不推荐内容:

  • 数千行重复代码规范。
  • 已经在代码中可以直接推断的规则。
  • 与当前项目无关的通用理论。
  • 过期命令和失效链接。
  • 所有历史讨论的全文复制。

好的 AGENTS.md 应该更像:

入口 + 导航 + 不可违反的规则

而不是:

项目所有知识的无结构压缩包

8.3 上下文的加载策略​

任务开始时加载​

  • 根目录规则。
  • 当前目录规则。
  • 当前变更的 Proposal、Spec、Design、Tasks。
  • 相关架构和决策文档。
  • 当前 Git 状态。

修改某模块时加载​

  • 模块局部规则。
  • 直接依赖模块的接口。
  • 相关测试。
  • 最近的变更记录。

运行验证时加载​

  • 测试命令。
  • 环境要求。
  • 真实设备或外部服务边界。
  • 失败分类规则。

不应该默认加载​

  • 全仓库所有历史日志。
  • 与当前任务无关的业务文档。
  • 大量生成产物。
  • 敏感配置。
  • 没有经过筛选的聊天记录。

8.4 上下文质量检查​

每次提交规则或文档变更前,检查:

  • 规则是否存在冲突。
  • 命令是否真的可执行。
  • 相对链接是否有效。
  • 文档是否包含过期版本。
  • 示例是否泄露敏感信息。
  • 是否把实现细节错误写成业务约束。
  • 是否将一次性决策错误写成永久规则。
  • 是否出现“必须”“始终”“绝不”等无法执行的空泛要求。

9. Harness Engineering 实践​

9.1 Harness 的组成​

Agent
├── Context Loader
├── Repository Reader
├── Code Search
├── Editor / Patch Tool
├── Test Runner
├── Build Runner
├── Linter / Formatter
├── Browser / Device Tool
├── MCP Tools
├── Git / Worktree
├── Permission Boundary
├── Progress Tracker
├── Review Gate
└── Audit Log

9.2 将隐性规则变成机器门禁​

只在文档中写规则是不够的。可以把规则变成:

  • ESLint 规则。
  • TypeScript 严格检查。
  • Schema 校验。
  • OpenAPI 或 GraphQL 契约检查。
  • Dependency Cruiser 或模块边界检查。
  • Git diff 检查。
  • Secret Scanner。
  • License 检查。
  • 单元和集成测试。
  • 构建检查。
  • E2E 和视觉回归。
  • CI 必须通过的状态检查。

例如,不要只写:

禁止页面直接调用原生网络 API。

更好的做法是同时提供:

规则文档
+ 统一请求封装
+ ESLint 禁止列表
+ 代码搜索检查
+ CI 门禁

9.3 Agent 执行环境​

最小权限原则​

  • 只授予当前任务需要的目录和命令权限。
  • 默认禁止访问生产凭据。
  • 默认不读取真实用户数据。
  • 网络访问按域名和用途限制。
  • 高风险命令需要人工确认。
  • 删除、迁移、发布操作必须可审计。

隔离策略​

场景建议环境
只读分析只读工作区
普通代码修改独立分支或当前任务分支
多 Agent 并行独立 Git Worktree
依赖和脚本实验临时容器或沙箱
数据迁移脱敏副本和专用环境
发布验证预发布环境,禁止直接使用生产写权限

9.4 可恢复性和幂等性​

Agent 任务必须支持中断后恢复。

恢复依赖以下信息:

  • 当前变更 ID。
  • 当前任务 ID。
  • 已完成任务。
  • 当前工作区状态。
  • 已修改文件列表。
  • 最近一次验证结果。
  • 已知失败和未决问题。
  • 下一步动作。

对于支付、订单、回调、异步任务等业务,还必须在业务层保证:

  • 结果先持久化,再消费。
  • 重复事件可以安全处理。
  • 客户端恢复不依赖一次性内存事件。
  • 最终状态以服务端确认结果为准。
  • 状态消费接口幂等。
  • 重试不会重复发放权益或重复扣款。

这类业务不能仅依赖 Agent 记住上一次对话内容。


10. 测试、评估与质量门禁​

10.1 测试和评估的分层​

代码级:类型、lint、单元测试
模块级:组件、集成、契约测试
系统级:E2E、回归、性能、安全
Agent 级:规则遵循、工具选择、任务完成
业务级:成功率、转化、错误恢复
生产级:延迟、成本、稳定性、告警

10.2 AI Coding Agent 的评估维度​

任务完成质量​

  • 是否满足所有验收条件。
  • 是否覆盖异常和边界场景。
  • 是否修改了正确的文件。
  • 是否引入不必要的重构。
  • 是否留下未处理的 TODO。

工程纪律​

  • 是否读取项目规则。
  • 是否遵守命名和类型约束。
  • 是否通过测试、lint 和构建。
  • 是否更新任务和变更记录。
  • 是否在不确定时暂停。

代码质量​

  • 设计是否符合当前架构。
  • 抽象是否过度或不足。
  • 是否正确处理错误和资源释放。
  • 是否保证幂等性和一致性。
  • 是否增加了可观测性。

成本和效率​

  • 总 token 消耗。
  • 运行时长。
  • 工具调用次数。
  • 重试次数。
  • 人工干预次数。
  • 一次完成率。
  • 回滚率。

10.3 红绿验证循环​

对于核心逻辑,推荐使用明确的红绿循环:

先定义验收场景
↓
写出测试或评估
↓
确认失败或未实现
↓
实现最小代码
↓
运行验证
↓
重构和补充边界

需要注意:严格 TDD 是一种可选的工程策略,但对关键领域强制“先有可执行验收再实现”通常更稳。并不是所有 UI 探索、一次性脚本都需要先写完整测试。

10.4 失败分类​

失败类型示例处理方式
需求失败Spec 无法解释两种行为回到 Explore / Spec
设计失败当前架构无法支持目标更新 Design
实现失败代码不满足测试修复实现
测试失败测试断言错误或环境缺失修复测试或补充环境
工具链失败依赖、脚本或构建工具异常单独记录,不误判为业务失败
环境失败网络、设备、第三方服务不可用标记未验证或阻塞
业务验证失败代码通过但真实流程不符合预期补充 E2E / 生产评估

11. 多 Agent 和并行开发​

11.1 适合并行的任务​

  • 互不重叠的模块修改。
  • 前端和后端分别实现稳定契约。
  • 测试补充和文档补充。
  • 独立的调研任务。
  • 不同方案的 PoC。
  • 不同平台的适配,但共享契约已经确定。

11.2 不适合并行的任务​

  • 多个 Agent 同时修改同一个核心文件。
  • 需求尚未明确的功能。
  • 数据模型尚未确定的上下游实现。
  • 共享状态机的连续修改。
  • 需要频繁改变公共接口的任务。
  • 多个 Agent 同时决定架构方向。

11.3 推荐并行模型​

主 Agent:维护 Spec、Design、任务依赖和最终集成
├── Agent A:领域模型和服务端契约
├── Agent B:前端状态和页面实现
├── Agent C:测试、Mock 和回归用例
└── Agent D:文档、监控和发布配置

每个 Agent 都应该拥有:

  • 独立 Worktree。
  • 明确的写入范围。
  • 明确的输入契约。
  • 明确的输出文件。
  • 明确的验证命令。
  • 明确的回传格式。

11.4 主 Agent 的集成职责​

主 Agent 不能只做文件合并,还需要检查:

  • 各分支是否实现了同一个 Spec。
  • 接口和类型是否一致。
  • 测试是否覆盖跨模块行为。
  • 是否出现重复实现。
  • 是否有任务被“看似完成”但实际上延期。
  • 是否需要更新 Design 或 Decision Log。

12. 工具和方法选择​

12.1 GitHub Spec Kit​

核心流程(Spec Kit)​

/specify
→ /plan
→ /tasks
→ /implement

典型产物​

specs/<feature>/
├── spec.md
├── research.md
├── plan.md
├── data-model.md
├── contracts/
├── quickstart.md
└── tasks.md

适用场景(Spec Kit)​

  • 希望规格优先。
  • 需要完整的规划和任务拆解。
  • 新功能、新产品或复杂变更。
  • 需要可追溯的工程流程。
  • 希望统一不同 Coding Agent 的执行方式。

不适合​

  • 一行配置修复。
  • 极小的样式调整。
  • 需求和影响面都非常简单的变更。

当前判断(Spec Kit)​

Spec Kit 是“结构化 SDD + Agent 执行”的代表。它不是 SDD 的替代品,而是将 SDD 变成可执行工作流的一种实现。

12.2 OpenSpec​

核心流程(OpenSpec)​

/opsx:explore
→ /opsx:propose
→ /opsx:apply
→ /opsx:archive

其中 propose 通常生成:

proposal.md
specs/
design.md
tasks.md

适用场景(OpenSpec)​

  • 存量项目持续变更。
  • 希望区分当前系统规格和待合并变更。
  • 需要 delta spec。
  • 想要比完整产品流程更轻量的 SDD。
  • 需要在多个 Coding Agent 之间交接变更。

当前判断(OpenSpec)​

OpenSpec 更偏向“变更管理型 SDD”。它强调:

当前事实
+ 变更提案
+ 可审查设计
+ 可跟踪任务
+ 完成后归档

12.3 BMAD Method​

当前阶段​

Analysis
→ Planning
→ Solutioning
→ Implementation

典型工作流​

产品探索 / 调研
→ PRD / UX / SPEC
→ Architecture
→ Epics / Stories
→ Sprint Planning
→ Build
→ Code Review
→ Retrospective

适用场景(BMAD Method)​

  • 中大型产品。
  • 产品、UX、架构、开发需要连续协作。
  • 需要 Epic、Story 和 Sprint 管理。
  • 需要多角色 Agent。
  • 需要完整的从产品到交付流程。

当前命令注意事项​

BMAD 的旧教程可能仍然使用 create-story、dev-story 等命令。当前 v6 方向已经将 bmad-build 作为实现阶段的统一入口,推荐以当前仓库文档和变更记录为准,不要机械照搬旧教程。

12.4 如何选择​

场景推荐流程原因
原型和探索Vibe Coding需要快速发散,不值得建立完整文档
小型修复Lightweight Plan → Implement → Verify控制成本,保留最小可追溯性
存量项目功能变更OpenSpec 或轻量 SDD适合记录增量变更和兼容边界
复杂新功能Spec Kit需求、计划、任务和实现链路完整
中大型新产品BMAD Method覆盖产品、UX、架构、Sprint 和交付
多 Agent 并行Agentic SDLC + Harness需要隔离、调度、权限和质量门禁
AI Agent 产品Eval-Driven Development需要评估行为、成本、延迟和稳定性

13. 典型项目的落地模板​

13.1 小型修复​

适用于:

  • 单文件修复。
  • 低风险样式或文案变更。
  • 已经明确的类型错误。
  • 已有测试覆盖的局部 Bug。
1. 读取规则和当前 diff
2. 定位代码和测试
3. 写 3 至 5 行实施计划
4. 修改最小范围
5. 运行针对性测试和 git diff --check
6. 人工确认 diff

推荐产物:

commit message
verification note

不需要为每一行改动建立完整 PRD。

13.2 中型业务功能​

适用于:

  • 多文件修改。
  • 页面、状态和接口联动。
  • 需要处理异常和恢复。
  • 需要新增测试。

推荐流程:

Explore
→ proposal.md
→ spec.md
→ design.md
→ tasks.md
→ Agent 执行
→ verification.md
→ Review

推荐要求:

  • Spec 先于代码。
  • 任务按依赖顺序执行。
  • 每个任务都运行局部验证。
  • 页面状态不能替代服务端最终状态。
  • 关键事件要考虑重复、乱序、丢失和恢复。

13.3 大型新产品​

推荐使用:

Discovery
→ Product Brief
→ PRD
→ UX
→ SPEC
→ Architecture
→ Epics
→ Stories
→ Sprint Planning
→ Build
→ Review
→ Eval
→ Release
→ Retrospective

必须提前建立:

  • 产品目标和非目标。
  • 领域模型。
  • 系统边界。
  • 架构决策记录。
  • 接口契约。
  • 验收场景。
  • 评估集。
  • 发布和回滚策略。
  • 可观测性指标。

13.4 多 Agent 并行项目​

推荐流程:

主 Agent 建立 Spec 和 Design
↓
拆分互斥任务
↓
每个任务分配独立 Worktree
↓
Agent 执行并运行局部验证
↓
主 Agent 集成和跨模块验证
↓
统一 Review
↓
合并和发布

不要让多个 Agent 直接共享同一个未提交工作区。


14. 前端和多端项目的特殊约束​

14.1 前端项目​

Agent 修改前应明确:

  • React、Vue 或其他框架版本。
  • 状态管理方式。
  • 请求封装位置。
  • 路由和权限边界。
  • 样式组织方式。
  • 组件 Props 和事件命名规范。
  • 测试和构建命令。
  • SSR、CSR、预渲染或边缘运行时限制。

14.2 小程序和跨端项目​

必须在 Spec 和 Design 中明确平台:

微信小程序
支付宝小程序
H5
App

不能把一个平台的原生 API 直接套到另一个平台。

需要单独记录:

  • 生命周期差异。
  • WebView 行为差异。
  • 支付和授权差异。
  • 返回页面后的恢复机制。
  • 真实设备验证边界。
  • 编译器和分包差异。
  • H5 与小程序的网络和域名限制。

14.3 支付和认证类流程​

这类流程应该采用:

业务结果先持久化
→ 页面恢复
→ 服务端确认
→ 幂等消费
→ UI 展示

不要把关键业务结果只放在:

  • 一次性 EventBus 事件。
  • 页面内存变量。
  • 某次组件回调。
  • WebView 关闭时的瞬时消息。

关键结果必须能够在页面重建、生命周期切换、重复回调和网络重试后恢复。

14.4 真实设备边界​

以下验证不能被“代码检查通过”替代:

  • 真机授权弹窗。
  • 系统返回和页面重载。
  • WebView 回跳。
  • 第三方支付或认证回调。
  • 不同平台的生命周期。
  • 弱网、杀进程和恢复。
  • 设备权限和系统版本差异。

文档中应该明确记录:

静态检查通过 ≠ 真机验收通过
构建成功 ≠ 第三方业务链路成功
单元测试通过 ≠ 多端生命周期正确

15. 安全、权限和供应链​

15.1 Agent 权限​

  • 默认最小权限。
  • 读写目录必须按任务范围控制。
  • 生产凭据不进入上下文。
  • 真实用户数据必须脱敏。
  • 高风险命令必须人工确认。
  • 外部网络访问必须可审计。
  • 工具调用必须记录调用者、参数和结果。

15.2 代码和依赖安全​

  • 不接受 Agent 直接写入密钥、Token、AppSecret 或密码。
  • 不把 .env、真实日志和私有接口信息写入公开文档。
  • 新增依赖前检查来源、许可证、维护状态和供应链风险。
  • 不为了通过测试而关闭安全校验。
  • 不为了绕过 CORS、权限或类型错误而加入不受控的宽泛放行。
  • 用户输入必须进行合法性校验和必要的转义或净化。

15.3 Prompt Injection 防护​

读取外部内容时,不应默认相信内容中的指令。

尤其要区分:

业务数据
文档内容
第三方网页内容
仓库规则
用户明确指令
系统安全约束

外部内容可以作为待分析数据,但不能未经确认就提升权限、执行命令、上传数据或改变系统规则。

15.4 供应链和生成代码审查​

Agent 生成的代码也必须经过:

  • 依赖审查。
  • Secret 扫描。
  • License 检查。
  • 静态安全分析。
  • 代码所有权和许可证确认。
  • 生成内容的来源和可维护性判断。

16. 常见反模式​

16.1 把一条 Prompt 当成完整需求​

帮我实现一个完整的订单系统

问题:范围、状态、异常、权限、幂等和验收都不清楚。

改进:先 Explore,再 Spec,再拆 Tasks。

16.2 文档很完整,但 Agent 不读取​

问题:Spec 放在一个 Agent 不会主动发现的位置,执行时只看用户最后一句话。

改进:

  • 在 AGENTS.md 中提供文档入口。
  • 当前任务明确列出上下文文件。
  • 使用脚本检查文档和代码的关联。
  • 让 Agent 在执行前报告已读取的上下文。

16.3 Agent 自己扩大范围​

表现:

  • 顺手重构无关模块。
  • 修改公共组件行为。
  • 删除旧逻辑。
  • 更新大量依赖。
  • 改动与任务无关的格式。

改进:定义允许修改范围和禁止范围;超出范围必须暂停。

16.4 只验证“能编译”​

编译通过只说明语法、类型或构建链路达到某个条件,不代表:

  • 需求正确。
  • 状态转换正确。
  • 异常恢复正确。
  • 真实平台正确。
  • 第三方服务成功。
  • 生产指标达标。

16.5 把测试失败全部归因于 Agent​

失败可能来自:

  • 测试命令错误。
  • 依赖没安装。
  • 环境变量缺失。
  • 浏览器或设备未准备。
  • 基线分支本来就失败。
  • 外部服务不可用。

应分类记录,避免错误修复。

16.6 多 Agent 共享一个工作区​

问题:

  • 文件互相覆盖。
  • 测试结果无法归属。
  • 回滚困难。
  • 任务边界失效。

改进:独立 Worktree、明确写入范围、主 Agent 集成。

16.7 过度流程化​

不是每个按钮文字修改都需要完整的 PRD、架构评审和多 Agent 编排。

推荐按风险分级:

低风险:短计划 + 局部验证
中风险:Spec + Design + Tasks + Review
高风险:完整 SDD + 多层测试 + 人工 Gate + 灰度发布

16.8 只追求 Agent 自主,不设计暂停机制​

真正可靠的 Agent 不是“永远不停地执行”,而是知道何时:

  • 继续执行。
  • 重试。
  • 回滚。
  • 更新设计。
  • 请求人工决策。
  • 标记阻塞。

17. 团队推广路线​

17.1 第 1 阶段:统一入口​

先建立:

  • 根目录 AGENTS.md。
  • 统一开发、测试、构建命令。
  • 统一变更目录。
  • 统一验证记录格式。
  • 统一敏感信息规则。

目标:让不同 Agent 至少能正确进入项目。

17.2 第 2 阶段:引入轻量 SDD​

每个中等以上变更至少有:

proposal.md
spec.md
tasks.md
verification.md

目标:让需求、执行和验证可追踪。

17.3 第 3 阶段:建立 Harness​

自动化:

  • 类型检查。
  • lint。
  • 测试。
  • 构建。
  • 变更范围检查。
  • Secret 扫描。
  • 文档链接检查。
  • 规则漂移检查。

目标:把依赖个人记忆的规则变成机器门禁。

17.4 第 4 阶段:引入 Eval​

为高价值任务建立评估集:

  • 典型需求。
  • 历史 Bug。
  • 边界场景。
  • 失败案例。
  • 安全案例。
  • 跨端案例。

目标:用数据比较 Agent、Prompt、规则和流程的变化。

17.5 第 5 阶段:并行 Agent​

只有在以下条件满足后再并行:

  • 任务可拆分。
  • 接口稳定。
  • 写入范围互斥。
  • Worktree 隔离。
  • 自动验证可靠。
  • 主 Agent 有集成能力。

目标:提升吞吐,而不是增加混乱。

17.6 第 6 阶段:生产闭环​

收集:

  • Agent 任务完成率。
  • 一次通过率。
  • 人工修改比例。
  • 回滚率。
  • 缺陷逃逸率。
  • Token 成本。
  • 平均完成时间。
  • 测试和评估覆盖率。

目标:从“感觉 AI 提效”变成可测量的工程改进。


18. 生产检查清单​

18.1 需求和 Spec​

  • 背景和问题清晰。
  • 用户价值清晰。
  • 目标和非目标清晰。
  • 约束已记录。
  • 正常、异常和边界场景已覆盖。
  • 验收条件可验证。
  • 关键歧义已解决。

18.2 上下文​

  • Agent 能找到项目规则。
  • 开发、测试和构建命令可执行。
  • 模块边界清晰。
  • 相关架构决策可读取。
  • 平台差异已说明。
  • 未把敏感信息放入上下文。
  • 文档和代码没有明显漂移。

18.3 Design 和 Tasks​

  • 设计方案已批准。
  • 关键权衡已记录。
  • 任务有依赖关系。
  • 每个任务有完成条件。
  • 每个任务有验证命令。
  • Agent 的写入范围已定义。
  • 已定义暂停条件。

18.4 实现​

  • Agent 读取了 Spec、Design 和项目规则。
  • 只修改了任务范围内的文件。
  • 没有吸收未批准的额外需求。
  • 类型和错误处理完整。
  • 关键业务逻辑具备幂等和恢复能力。
  • 用户输入和外部数据经过校验。
  • 没有硬编码敏感信息。

18.5 验证​

  • git diff --check 通过。
  • 类型检查通过。
  • 相关单元测试通过。
  • 相关集成或 E2E 测试通过。
  • 构建通过。
  • 安全检查通过。
  • 评估集通过或已记录失败。
  • 基线失败与本次回归已区分。
  • 真实设备和第三方服务边界已标注。

18.6 Review 和发布​

  • Review 先对照 Spec,再看代码。
  • 高风险业务有人工批准。
  • 有发布和回滚方案。
  • 有监控和告警。
  • 有灰度或逐步放量策略。
  • 生产反馈会更新测试、Spec 或规则。

19. 结论:现在应该怎样理解 VB、SDD 和 Agent 开发​

19.1 最简关系图​

Vibe Coding
↓ 负责快速探索和原型
Explore / Assess
↓ 负责判断问题、范围和风险
SDD / Spec
↓ 负责固化意图、边界和验收
Plan / Design / Tasks
↓ 负责形成可执行路径
Agentic Implementation
↓ 负责跨文件、多步骤执行
Harness Engineering
↓ 负责工具、权限、规则和恢复
Test / Eval / Review
↓ 负责质量和人工判断
Deploy / Observe
↓ 负责生产闭环
Update Spec / Context / Eval

19.2 一句话版本​

可以用 Vibe Coding 发散,但生产交付应进入 Agentic SDLC;SDD 是其中的规格骨架,Context 和 Harness 是执行基础,Test/Eval 是质量控制,Human Review 是高风险决策边界。

19.3 推荐的默认流程​

对于大多数中小型前端和全栈项目,推荐从这套流程开始:

Explore
→ Inspect Repository
→ Proposal
→ Spec
→ Plan / Design
→ Tasks
→ Agent Implement
→ Test / Lint / Build / Eval
→ Human Review
→ Merge / Deploy
→ Observe / Update

不建议一开始就引入过重的多 Agent 编排。先把以下四件事做好,收益通常最高:

  1. 可读的项目上下文。
  2. 可验证的 Spec。
  3. 可恢复的 Tasks。
  4. 可靠的测试和质量门禁。

20. 参考资料与核对说明​

以下资料均为截至 2026-09-03 访问或通过 Context7 检索到的官方项目文档、官方工程文章或官方一手资料。版本和命令会变化,实际使用前应再次核对仓库当前文档。

20.1 GitHub Spec Kit​

核心流程:

specify → plan → tasks → implement

20.2 OpenSpec​

核心流程:

explore → propose → apply → archive

20.3 BMAD Method​

核心阶段:

Analysis → Planning → Solutioning → Implementation

20.4 Context Engineering​

20.5 Harness Engineering 与 AI-native Engineering​

20.6 资料使用边界​

  • 本文不是某个具体工具的完整命令手册。
  • 工具命令、版本和目录结构可能随项目更新变化。
  • 具体项目应优先使用本地仓库规则、当前版本文档和实际 CLI 输出。
  • “真实设备通过”“第三方业务成功”“生产可用”等结论不能仅由静态检查或 Agent 自报完成得出。
  • 本文推荐的流程是对当前公开工程实践的综合归纳,不代表存在一个被所有团队统一采用的唯一标准。